<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <!-- this的调用大概分为五种场景：
1.浏览器里，在全局范围内的this 指向window对象；
2.在函数中，this永远指向最后调用他的那个对象；
3.构造函数中，this指向new出来的那个新的对象；
4.Call、apply、bind中的this被绑定在指定的那个对象上；
5.箭头函数中this比较特殊,箭头函数this为父作用域的this，不是调用时的this -->
    <button onclick="Hclick()">点击事件</button>
    <script>
        //    在全局环境中的this——window
        // 无论是否在严格模式下，在全局执行环境中（在任何函数体外部）this 都指向全局对象。
        "use strict"
        console.log(this); //window
        console.log(this === window);//true
        // 在函数中的this——window
        // 在函数内部，this的值取决于函数被调用的方式。
        function f() {
            console.log(this); //window
            console.log(this === window);//true
        }
        f()
        console.log(f() === window.f()); //true
        //    对象中的this——指向调用者
        let obj = {
            fn: function () {
                console.log(this);
            }
        }
        obj.fn() //指向obj这个对象

        // 事件绑定中的this 
        function Hclick() {
            console.log(this);
        }

    </script>
</body>

</html>